package com.huang.sunnyweather

import android.annotation.SuppressLint
import android.app.Application
import android.content.Context

class SunnyWeatherApplication : Application() {

    /**
     * Companion object（伴生对象）用于存储应用程序的上下文。
     * 使用伴生对象可以让 context 被静态访问，类似于 Java 中的静态成员。
     */
    companion object {

        // 定义一个常量 TOKEN，用于存储应用中的认证令牌
        const val TOKEN = "your_token"

        /**
         * 应用程序的上下文对象。
         * 使用 @SuppressLint("StaticFieldLeak") 注解来抑制关于潜在内存泄漏的警告。
         * 虽然将 Context 存储在静态字段中可能会导致内存泄漏，但在某些情况下（例如整个应用都需要访问时），
         * 这种风险是可以接受的，并且可以通过其他方式减轻潜在的泄漏问题。
         */
        @SuppressLint("StaticFieldLeak")
        lateinit var context: Context
    }

    /**
     * 应用创建时的回调方法。
     * 在此方法中初始化伴生对象中的 context，使其可以在整个应用中被访问。
     */
    override fun onCreate() {
        super.onCreate()
        context = applicationContext
    }
}
